package com.alianlab.zhouzhang.service;

import com.alianlab.zhouzhang.domain.Author;
import com.alianlab.zhouzhang.domain.BookBasic;
import com.alianlab.zhouzhang.domain.BookType;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

/**
 * Service Interface for managing BookBasic.
 */
public interface BookBasicService {

    /**
     * Save a bookBasic.
     *
     * @param bookBasic the entity to save
     * @return the persisted entity
     */
    BookBasic save(BookBasic bookBasic);

    /**
     * Get all the bookBasics.
     *
     * @param pageable the pagination information
     * @return the list of entities
     */
    Page<BookBasic> findAll(Pageable pageable);

    /**
     * Get the "id" bookBasic.
     *
     * @param id the id of the entity
     * @return the entity
     */
    BookBasic findOne(Long id);

    /**
     * Delete the "id" bookBasic.
     *
     * @param id the id of the entity
     */
    void delete(Long id);

    Page<BookBasic> findBookBasicLike(String keyword,Pageable pageable)throws Exception;

    Page<BookBasic> findBookBasicByBookTypeId(BookType bookType, Pageable pageable) throws Exception;

    Page<BookBasic> findBookBasicsByAuthodId(Author author, Pageable pageable) throws Exception;

}
